perm filename UNIT.TEX[RDG,DBL] blob sn#539131 filedate 1980-10-08 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\input SCORE.TEX[RDG,DBL] % <CSD.GREINER>SCORE.TEX
C00006 00003	\def\indexoutput{\if T\1{\gdef\1{F}\save6\vbox{\vbox to size{\vfill}} % To preserve  regular size
C00009 00004	\HeadA ⊂Appendix E: Special Units⊃
C00029 ENDMK
C⊗;
\input SCORE.TEX[RDG,DBL] % <CSD.GREINER>SCORE.TEX
\def\index{F} \def\1{T} \def\lr{L}  % "global variables"
\output{\baselineskip 0pt\lineskip0pt	% beginning of output routine, resets skips
	\if T\index{\indexoutput}
	\else{
	\save9\hbox{\it E-\count0}
	\hbox to size % is 368pt if using RLL DRAFT at bottom
		{\ifeven0{\copy9\hfill{\copy5}\hfill\hskip 1wd9}
			\else{\hskip 1wd9\hfill{\copy5}\hfill\copy9}}
	\vskip 20pt\page
%	\vskip 20pt{\ctrline{\tenpoint\bf --- RLL DRAFT ---}}
	\advcount0}}
\setcount0 1  % so the pages will be numbered correctly
\def\yspace{\penalty-50\vskip 2pt plus 2pt minus 2pt}
\def\EPSILON{$\in$}
\def\EQUAL{$=$}
\def\Sub (#1){$↓#1$}
\def\RLL{{\bf RLL-1}}
\def\Unit (#1){{\bf #1}}
\def\Slot (#1){{\it #1}}
\def\UnitSlot (#1:#2){{\Unit (#1)}:{\Slot (#2)}}
\def\LispFn (#1){{\it #1}}
\def\hmode{\ \unskip}
\save1\hbox{\rm Direct Examples:\ }	 % The size of "Direct Examples: "
\save2\hbox{\rm \hskip 10pt Direct Examples:\ } % The size of "    Direct Examples: "
\save2\hbox{\hbox to size{} \hskip -1wd2}% Page width, minus ↑
\save3\hbox{\rm HighLevelDefn:\ }
\save4\hbox{\rm \hskip 10pt HighLevelDefn:\ }
\save4\hbox{\hbox to size{} \hskip -1wd4}
% \save5\hbox{\eightpoint \Slot (OrderedPrototypes) \hfil}
\let\holdpar=\par
\def\ClassEntry <#1 #2 #3>
	{{ % \def\par{\holdpar\noindent\hangindent 15pt after 1}
	\yyskip\noindent\hangindent 15pt after 1
	{{\Heavy _#1_} ({\it #2}) - #3 }}}
		% this is the basic description (raw text)
\def\CFact #1@#2>{\par\yspace
	\hbox{\valign{##\vfill\cr
		\hbox to 10pt{\hfil}\cr
		\hbox to 1wd1{#1: \hfil}\cr
		\hbox par 1wd2{#2}\cr}}}
\def\SlotEntry <#1 #2 #3>
	{{ % \def\par{\holdpar\noindent\hangindent 15pt}
	\yskip\noindent\hangindent 15pt after 1
	{{\it #1} -- [#2] #3 \par}}}
		 % this is the basic description (raw text)
\def\SFact #1@#2>{\par\yspace
	\hbox{\valign{##\vfill\cr
		\hbox to 10pt{\hfil}\cr
		\hbox to 1wd3{#1: \hfil}\cr
		\hbox par 1wd4{#2}\cr}}}
\def\SlotsFor #1{\par\ctrline{\it 
	The following slots are defined for all ``{\rm #1}''s:}}
\def\indexoutput{\if T\1{\gdef\1{F}\save6\vbox{\vbox to size{\vfill}} % To preserve  regular size
	\vsize 1ht7\save1\page\gdef\2{T}}
\else{ % Not the beginning of the appendix
	\if L\lr{\gdef\lr{R}\save0\page}
	    \else{ % Not the left-hand column
		\gdef\lr{L}\save3\hbox to 333pt % that is, size-20 pt
				{\box0\hfill\page}
	\if T\2{\gdef\2{F}\save3\vbox to 1ht6  % this is original size of page
		{\box1\vskip0pt minus100000000pt\box3}\vsize 1ht6}\else{}
	\save9\hbox{\it E-\count0}
	\hbox to size  % was 368pt if using other RLL DRAFT at bottom
		{\ifeven0{\copy9\hfill{\copy5}\hfill\hskip 1wd9}
			\else{\hskip 1wd9\hfill{\copy5}\hfill\copy9}}
	\vskip 20pt\moveright 10pt\box3
%	\vskip 20pt{\ctrline{\tenpoint\bf --- RLL DRAFT ---}}
	\advcount0}}}
  % This will be used in the index.
\save8\vbox{\HeadBA ⊂E.4: INDEX of UNITS⊃

\hbox par size{For indexing purposes,
the classes shown in Section E.3 were numbered sequentially.
This value is used in the index below, to indicate in which class each of these
units (representing classes, their examples and significant slots) belong.}
\vskip 20pt}
\save7\vbox{\vbox to size{\vfill} \vskip -1ht8} % Page height, minus ↑
\def\StartIndex{\par\vfill\eject 
	\gdef\index{T} \gdef\lr{L}
	\jpar1000 \ragged 1000 \chpar2←1000
	\copy8
	\vfill\eject} % this page will be overlapped, when \2 is T
\def\lead{\leaders\hjust to 10pt{\hfill .\hfill}\hfill}
\def\IE <#1 #2>{\par\hbox to 150pt{#1\lead #2}}
\def\IS <#1 #2>{\par\hbox to 150pt{\Slot (#1) (Slot)\lead #2}}
\def\IU <#1 #2>{\par\hbox to 150pt{\Unit (#1) (Class) \lead #2}}
\HeadA ⊂Appendix E: Special Units⊃

Many \RLL\  units are directly used by one or more of the \RLL\  functions
listed below.
These special ones are enumerated below, following a depth first traversal
of the \RLL\  Knowledge Base. Diagram {$\# 1$} portrays a skeleton of this hierarchy,
showing the subset relations joining these various classes.

\HeadB ⊂E.1: Naming Conventions⊃

$$\vcenter{\halign{\lft{\Unit (#) }⊗- \lft{#}\cr
Any***⊗refers to the class of all {\it ***} objects [e.g. \Unit (AnySlot) refers to
{\it slots}]\cr
Typical***⊗refers to the abstract object which typifies members of \Unit (Any***)\cr
F***⊗refers to a format [e.g. \Unit (FSingleton)]\cr
I***⊗refers to inheritance type [e.g. \Unit (IExamples)]\cr
My***⊗is a syntactic slot, [e.g. \Unit (MyCreator)]\cr
***-Instances⊗holds value of syntactic slot, \Unit (My***), to be inherited.\cr
⊗This \Unit (***-Instances) slot appears in \Unit (Typical---) units\cr
All***s⊗refers to extension of {\it ***} slot [e.g. \Unit (AllIsas) extends
\Unit (Isa)]\cr
***Type⊗refers to a datatype, [e.g. \Unit (IntegerType)]\cr
FnFor***⊗the value of this slot is a function, [e.g. \Unit (ForForGetting)]\cr
To***⊗the value of this slot is a function, ...\cr
***Value⊗the value of this slot refers to slot (as opposed to a field)\cr
***Field⊗the value of this slot refers to field (currently not used)\cr
}}$$

\HeadB ⊂E.2: Legend⊃

This \RLL\  Knowledge Base is organized into classes, 
which each contain a set of elements.
Associated with each such class of units is a list
of slots, which are meaningful for elements of this class.
For example, the \Slot (Datatype) slot makes sense for any function; but is
meaningless for, say, people.

Each entry is Section E.3 will describe a class of units;
including relevant features of the members of this class, and the list of slots
defined for each member.
The format used will be:

\ClassEntry <{Class Name} j
{A short description of what the class \Unit (Class Name) represents.}>
\CFact SuperClass@{$\{$Important immediate supersets of this class$\}$}>
\CFact SubClass@{$\{$Important immediate subsets of this class$\}$}>
\hmode{\qquad There are currently {\it n} examples.}\par
\CFact {Direct Examples}@{$\{$Important examples of this class$\}$}>

\SlotsFor {members of Class Name}

\SlotEntry <{slot$↓1$}
{slot$↓1$'s range}
{A short description of \Unit (slot$↓1$).}>
\SFact Inverse@{slot$↓1$'s inverse}>
\SFact HLDefn@{slot$↓1$'s high level definition}>
\SFact ArgList@{arg$↓1$, arg$↓2$, ... arg$↓{M↓1}$}>

{\eightpoint\vbox{\halign{\qquad\qquad{$#$}\cr
\cdot\cr
\cdot\cr
\cdot\cr}}}

\SlotEntry <{slot$↓N$}
{slot$↓N$'s range}
{A short description of \Unit (slot$↓N$).}>
\SFact Inverse@{slot$↓N$'s inverse}>
\SFact HLDefn@{slot$↓N$'s high level definition}>
\SFact ArgList@{arg$↓1$, arg$↓2$, ... arg$↓{M↓N}$}>

We view a slot as a function, which maps a unit onto some value.
The ``\Unit (slot$↓i$)'s range'' field above encodes the space of permissible values
the \Slot (slot$↓i$) of any unit may take.
There are several basic categories of slots,
each with its own type of range.
When {\it Range} is \Unit (FunctionType), it is relevant to know
what \Unit (slot$↓i$)'s \Slot (HighLevelDefinition), and \Slot (ArgList)
is -- otherwise these slots are not even well defined.
Similarly, unless 
{\it Range} is \Unit (UnitType), it is not possible for \Unit (Slot$↓i$) to have an
inverse.

Subsection E.4 will provide an index to the units presented in Section E.3,
using the sequential numbers assigned to each class.
Each class will refer to that number, and each slot will point to the
number associated with the class to which is affiliated.

\HeadB ⊂E.3: Actual Units⊃